commonlibsse_ng\re\t/
TESObjectWEAP.rs1pub mod critical_data;
3pub mod data;
4
5use self::critical_data::CriticalData;
6use self::data::Data;
7use crate::re::BGSEquipType::BGSEquipType;
8use crate::re::BGSKeywordForm::BGSKeywordForm;
9use crate::re::BGSSoundDescriptorForm::BGSSoundDescriptorForm;
10use crate::re::BSFixedString::BSFixedString;
11use crate::re::SoundLevel::SOUND_LEVEL;
12use crate::re::TESAttackDamageForm::TESAttackDamageForm;
13use crate::re::TESBoundObject::TESBoundObject;
14use crate::re::TESDescription::TESDescription;
15use crate::re::TESEnchantableForm::TESEnchantableForm;
16use crate::re::TESFullName::TESFullName;
17use crate::re::TESIcon::TESIcon;
18use crate::re::TESModel::TESModel;
19use crate::re::TESModelTextSwap::TESModelTextureSwap;
20use crate::re::TESValueForm::TESValueForm;
21use crate::re::TESWeightForm::TESWeightForm;
22use crate::re::{
23 BGSBlockBashData, BGSDestructibleObjectForm, BGSImpactDataSet, BGSMessageIcon,
24 BGSPickupPutdownSounds, BGSPreloadable, TESEffectShader, TESObjectSTAT,
25};
26
27#[commonlibsse_ng_derive_internal::to_bitflags]
28#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
29#[repr(u32)]
30pub enum WEAPON_RUMBLE_PATTERN {
31 Constant = 0,
32 PeriodicSquare = 1,
33 PeriodicTriangle = 2,
34 PeriodicSawtooth = 3,
35}
36
37#[commonlibsse_ng_derive_internal::to_bitflags]
38#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
39#[repr(u32)]
40pub enum RecordFlag {
41 NonPlayable = 1 << 2,
42 Deleted = 1 << 5,
43 Ignored = 1 << 12,
44}
45
46#[repr(C)]
47#[derive(Debug)]
48pub struct RangedData {
49 pub sightFOV: f32, pub unk04: f32, pub firingRumbleLeftMotorStrength: f32, pub firingRumbleRightMotorStrength: f32, pub firingRumbleDuration: f32, pub rumblePattern: WEAPON_RUMBLE_PATTERN, pub numProjectiles: i8, pad19: u8, pad1A: u16, }
59const _: () = assert!(core::mem::size_of::<RangedData>() == 0x1C);
60
61#[repr(C)]
62#[derive(Debug)]
63pub struct Unk1B8 {
64 pub unk00: TESModel, pub unk28: *mut TESEffectShader, }
67const _: () = assert!(core::mem::size_of::<Unk1B8>() == 0x30);
68
69#[repr(C)]
70#[derive(Debug)]
71pub struct TESObjectWEAP {
72 pub __base0: TESBoundObject, pub __base1: TESFullName, pub __base2: TESModelTextureSwap, pub __base3: TESIcon, pub __base4: TESEnchantableForm, pub __base5: TESValueForm, pub __base6: TESWeightForm, pub __base7: TESAttackDamageForm, pub __base8: BGSDestructibleObjectForm, pub __base9: BGSEquipType, pub __base10: BGSPreloadable, pub __base11: BGSMessageIcon, pub __base12: BGSPickupPutdownSounds, pub __base13: BGSBlockBashData, pub __base14: BGSKeywordForm, pub __base15: TESDescription, pub weaponData: Data, pub criticalData: CriticalData, pub unk1B8: *mut Unk1B8, pub attackSound: *mut BGSSoundDescriptorForm, pub attackSound2D: *mut BGSSoundDescriptorForm, pub attackLoopSound: *mut BGSSoundDescriptorForm, pub attackFailSound: *mut BGSSoundDescriptorForm, pub idleSound: *mut BGSSoundDescriptorForm, pub equipSound: *mut BGSSoundDescriptorForm, pub unequipSound: *mut BGSSoundDescriptorForm, pub impactDataSet: *mut BGSImpactDataSet, pub firstPersonModelObject: *mut TESObjectSTAT, pub templateWeapon: *mut TESObjectWEAP, pub embeddedNode: BSFixedString, pub soundLevel: SOUND_LEVEL, pub pad21C: u32, }
105const _: () = assert!(core::mem::size_of::<TESObjectWEAP>() == 0x220);